home *** CD-ROM | disk | FTP | other *** search
- # AllSampl.tcl --
- #
- # This file is a directory of all the sample programs in the
- # demos/samples subdirectory.
- #
- #
- # Copyright (c) 1996, Expert Interface Technologies
- #
- # See the file "license.terms" for information on usage and redistribution
- # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- #
- #
-
- # The following data structures contains information about the requirements
- # of the sample programs, as well as the relationship/grouping of the sample
- # programs.
- #
- # Each element in an info list has four parts: type, name, group/filename, and
- # condition. A group or a file is loaded only if the conditions are met.
- #
- # types: "d" directory "f" file
- # conditions:
- # "i": an image type must exist
- # "c": a command must exist
- # "v": a variable must exist
-
- set root {
- {d "File Selectors" file }
- {d "Hierachical ListBox" hlist }
- {d "Tabular ListBox" tlist {c tixTList}}
- {d "Grid Widget" grid {c tixGrid}}
- {d "Manager Widgets" manager }
- {d "Scrolled Widgets" scroll }
- {d "Miscellaneous Widgets" misc }
- {d "Image Types" image }
- }
-
- set image {
- {d "Compound Image" cmpimg }
- {d "XPM Image" xpm {i pixmap}}
- }
-
- set cmpimg {
- {f "In Buttons" CmpImg.tcl }
- {f "In NoteBook" CmpImg2.tcl }
- {f "Notebook Color Tabs" CmpImg4.tcl }
- {f "Icons" CmpImg3.tcl }
- }
-
- set xpm {
- {f "In Button" Xpm.tcl {i pixmap}}
- {f "In Menu" Xpm1.tcl {i pixmap}}
- }
-
- set file {
- {f DirList DirList.tcl }
- {f DirTree DirTree.tcl }
- {f DirSelectDialog DirDlg.tcl }
- {f ExFileSelectDialog EFileDlg.tcl }
- {f FileSelectDialog FileDlg.tcl }
- {f FileEntry FileEnt.tcl }
- }
-
- set hlist {
- {f HList HList1.tcl }
- {f CheckList ChkList.tcl {c tixCheckList}}
- {f "ScrolledHList (1)" SHList.tcl }
- {f "ScrolledHList (2)" SHList2.tcl }
- {f Tree Tree.tcl }
- {f "Tree (Dynamic)" DynTree.tcl {v win}}
- }
-
- set tlist {
- {f "ScrolledTList (1)" STList1.tcl {c tixTList}}
- {f "ScrolledTList (2)" STList2.tcl {c tixTList}}
- {f "TList File Viewer" STList3.tcl {c tixTList}}
- }
-
- set grid {
- {f "Simple Grid" SGrid0.tcl {c tixGrid}}
- {f "ScrolledGrid" SGrid1.tcl {c tixGrid}}
- {f "Editable Grid" EditGrid.tcl {c tixGrid}}
- }
-
- set scroll {
- {f ScrolledListBox SListBox.tcl }
- {f ScrolledText SText.tcl }
- {f ScrolledWindow SWindow.tcl }
- {f "Canvas Object View" CObjView.tcl {c tixCObjView}}
- }
-
- set manager {
- {f ListNoteBook ListNBK.tcl }
- {f NoteBook NoteBook.tcl }
- {f PanedWindow PanedWin.tcl }
- }
-
- set misc {
- {f Balloon Balloon.tcl }
- {f ButtonBox BtnBox.tcl }
- {f ComboBox ComboBox.tcl }
- {f Control Control.tcl }
- {f LabelEntry LabEntry.tcl }
- {f LabelFrame LabFrame.tcl }
- {f Meter Meter.tcl {c tixMeter}}
- {f OptionMenu OptMenu.tcl }
- {f PopupMenu PopMenu.tcl }
- {f Select Select.tcl }
- {f StdButtonBox StdBBox.tcl }
- }
-
- # ForAllSamples --
- #
- # Iterates over all the samples that can be run on this platform.
- #
- # Arguments:
- # name: For outside callers, it must be "root"
- # token: An arbtrary string passed in by the caller.
- # command: Command prefix to be executed for each node
- # in the samples hierarchy. It should return the
- # token of the node that it has just created, if any.
- #
- proc ForAllSamples {name token command} {
- global $name win
-
- if {[tix platform] == "windows"} {
- set win 1
- }
-
- foreach line [set $name] {
- set type [lindex $line 0]
- set text [lindex $line 1]
- set dest [lindex $line 2]
- set cond [lindex $line 3]
-
- case [lindex $cond 0] {
- c {
- set cmd [lindex $cond 1]
- if {[info command $cmd] != $cmd} {
- if ![auto_load $cmd] {
- continue
- }
- }
- }
- i {
- if {[lsearch [image types] [lindex $cond 1]] == -1} {
- continue
- }
- }
- v {
- set doit 1
- foreach var [lrange $cond 1 end] {
- if [uplevel #0 info exists [list $var]] {
- set doit 0
- break
- }
- }
- if !$doit {
- continue
- }
- }
- }
-
-
- if {$type == "d"} {
- set tok [eval $command [list $token] $type [list $text] \
- [list $dest]]
- ForAllSamples $dest $tok $command
- eval $command [list $tok] done xx xx
- } else {
- set tok [eval $command [list $token] $type [list $text] \
- [list $dest]]
- }
- }
- }
-
-
- proc DoAll {hlist {path ""}} {
- catch {
- set theSample [$hlist info data $path]
- if {$theSample != {}} {
- set title [lindex $theSample 0]
- set prog [lindex $theSample 1]
-
- RunProg $title $prog
- update
- }
- }
-
- foreach p [$hlist info children $path] {
- DoAll $hlist $p
- }
- }
-